#ifndef AER_SHAPE_HPP_
#define AER_SHAPE_HPP_

#include "../aerMesh.hpp"


/// =============================
/// + Defines primitives shapes +
/// =============================
namespace aer {

class SphereRaw : public aer::Mesh
{
  
  public:
    void init(const float radius, const unsigned int resolution);
};

class Dome : public aer::Mesh
{
  
  public:
    void init(const float radius, const unsigned int resolution);
};

class Disc : public aer::Mesh
{
  public:
    void init(const float radius, const unsigned int resolution);
};

class CubeRaw : public aer::Mesh
{
  public:
    void init(const float side);
};

class Cube : public aer::Mesh
{
  public:
    void init(const float side);
};

class Plane : public aer::Mesh
{
  
  public:
    void init(const float width, const float height,
              const unsigned int resolution);
};

} // aer

#endif //AER_SHAPE_HPP_
